/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package co.edu.univalle.proyecto.logica;

import co.edu.univalle.proyecto.modelo.Actividades;
import co.edu.univalle.proyecto.persistencia.ActividadesDAOLocal;
import java.math.BigDecimal;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author CQ 43 - 450LA
 */
@Stateless
public class ActividadesLogica implements ActividadesLogicaLocal {

     @EJB
    private ActividadesDAOLocal ActividadesDAO;
    @Override
    public void registrar(Actividades actividad) throws Exception {
        if(actividad==null){
            throw new Exception("la actividad no tiene datos necesarios");
        }
           if(actividad.getIdActividad()==null){
            throw new Exception("La atividad debe tener un id ");
        }
          
        Actividades objActividad = ActividadesDAO.consultarPorId(actividad.getIdActividad());
        
        if(objActividad != null){
            throw new Exception("la actividad ya Existe");
        }
        
        if(actividad.getActividad()==null || actividad.getActividad().equals("")){
            throw new Exception("La Actividad debe contener descripcion o nombre");
        }
        ActividadesDAO.registrar(actividad);
    }

    @Override
    public void eliminar(Actividades actividad) throws Exception {
          if(actividad==null){
            throw new Exception("La Actividad no tiene datos");
        }
      Actividades objActividad = ActividadesDAO.consultarPorId(actividad.getIdActividad());
        if(objActividad == null){
            throw new Exception("La Actividad a eliminar no Existe");
        }
        
       
        ActividadesDAO.eliminar(actividad);
    }

    @Override
    public void modificar(Actividades actividad) throws Exception {
    if(actividad==null){
            throw new Exception("la actividad no tiene datos necesarios");
        }
           if(actividad.getIdActividad()==null){
            throw new Exception("La atividad debe tener un id ");
        }
        
          
        Actividades objActividad = ActividadesDAO.consultarPorId(actividad.getIdActividad());
        
        if(objActividad == null){
            throw new Exception("la actividad ya no Existe");
        }
        
        if(actividad.getActividad()==null || actividad.getActividad().equals("")){
            throw new Exception("La Actividad debe contener descripcion o nombre");
        }
         if(actividad.getResponsable()==null || actividad.getResponsable().equals("")){
            throw new Exception("La Actividad debe tener un responsable");
        }
            if(actividad.getNombreProceso()==null || actividad.getNombreProceso().equals("")){
            throw new Exception("La Actividad debe tener el nombre del proceso a que pertence");
        }
                  if(actividad.getMeta()==null){
            throw new Exception("La atividad debe tener una meta ");
        }
            
         
        ActividadesDAO.modificar(actividad);  
    }

    @Override
    public List<Actividades> consultar() throws Exception {
        
          return ActividadesDAO.consultar();
    }

    @Override
    public List<Actividades> consultarPorResponsable(String nombre) throws Exception {
      if(nombre==null || nombre.equals("")){
            throw new Exception("El Nombre es obligatorio");
        }
        return ActividadesDAO.consultarPorResponsable(nombre);
    }
    

   // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")

     @Override
    public Actividades consultarPorId(BigDecimal Id) throws Exception {
if(Id==null ){
            throw new Exception("El Id de la actividad es obligatorio");
        }
        return ActividadesDAO.consultarPorId(Id);  
    }

    

    @Override
    public List<Actividades> consultarActividadesPorProceso(String proceso) throws Exception {
 if(proceso==null || proceso.equals("")){
            throw new Exception("El Nombre del proceso es obligatorio");
        }
        return ActividadesDAO.consultarActividadesPorProceso(proceso);  
    }
}
